# microsoft/Fara-7B 模型
# 使用 ARM64 基础镜像（因为脚本中下载的是 aarch64 版本的 Miniconda）
FROM quay.io/ascend/vllm-ascend:v0.11.0rc0

# 设置工作目录
WORKDIR /data

# 安装系统依赖包
RUN apt update && \
    apt install -y \
        vim \
        wget \
        curl \
        git \
        build-essential \
        pkg-config \
        gfortran \
        libblas-dev \
        liblapack-dev \
        libatlas-base-dev \
        libsndfile1-dev \
        libsamplerate0-dev \
        ffmpeg \
        libavcodec-dev \
        libavformat-dev \
        libavutil-dev \
        libswresample-dev \
        libswscale-dev \
        libjpeg-dev \
        libpng-dev \
        libtiff-dev \
        libopenexr-dev \
        libgstreamer1.0-dev \
        libgstreamer-plugins-base1.0-dev && \
    apt clean && \
    rm -rf /var/lib/apt/lists/*

# 创建必要的目录
RUN mkdir -p /data/work

# 复制模型，已经下载好的
COPY ./vllm-start.sh /data/work/vllm-start.sh

COPY ./model/microsoft/Fara-7B /data/model/microsoft/Fara-7B

WORKDIR /data/work/app

# 设置Ascend CANN库路径（如果挂载了宿主机目录，这些路径会自动生效）
# 注意：这些路径在运行时通过卷挂载从宿主机提供
# 包含所有可能的库路径，确保能找到 libascend_hal.so
ENV LD_LIBRARY_PATH=/usr/local/Ascend/driver/lib64:/usr/local/Ascend/driver/lib64/stub:/usr/local/Ascend/add-ons:/usr/local/Ascend/driver/lib:$LD_LIBRARY_PATH
ENV ASCEND_RT_VISIBLE_DEVICES=2

# 默认命令
CMD ["/bin/bash" , "/data/work/vllm-start.sh"]

